home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / fish / 726-750 / 729 / bbbbs / bbbbs54.lzh / rexx / ArcBrowse.rexx < prev    next >
OS/2 REXX Batch file  |  1992-07-15  |  5KB  |  196 lines

  1. /*
  2.        $VER: 5.3 ArcBrowse.rexx 15 Jul 1992 (15.7.92)
  3.   archives user defined browselist into file in users email
  4. it receives its arguments from rexxDoors/Make_BrowseList.rexx
  5.  copyright 1991-92 Richard Lee Stockton FREELY DISTRIBUTABLE
  6. */
  7.  
  8. SIGNAL ON ERROR
  9. SIGNAL ON SYNTAX
  10. OPTIONS FAILAT 999999
  11.  
  12. PARSE ARG name lastbrowse alphaflag libflag liblist 
  13. lastbrowse=STRIP(lastbrowse)
  14.  
  15. IF ~DATATYPE(lastbrowse,'N') | name='' | alphaflag='' | libflag='' | liblist='' THEN
  16.   CALL GETOUT(20)
  17.  
  18. figarg='s:CONFIG.BBS'
  19. IF ~EXISTS(figarg) THEN figarg='BBS:BBS_TEXT/CONFIG.BBS'
  20. x=OPEN(f,figarg,'R')
  21. IF x=0 THEN
  22.   DO
  23.     SAY 's:CONFIG.BBS and BBS:BBS/CONFIG.BBS are both missing!'
  24.     CALL GETOUT(21)
  25.   END
  26. lynes.=''
  27. DO i=1 TO 33
  28.   lynes.i=READLN(f)
  29. END
  30. CALL CLOSE(f)
  31.  
  32. compos=POS('/*',lynes.1)
  33. IF compos>0 THEN lynes.1=LEFT(lynes.1,compos-1)
  34. bbsname = STRIP(lynes.1)
  35.  
  36. sysop   = WORD(lynes.2,1)
  37.  
  38. bbspath = WORD(lynes.6,1)
  39. IF ~EXISTS(bbspath) THEN
  40.   DO
  41.     SAY bbspath 'does not exist!'
  42.     CALL SETCLIP('BBS_STAT')
  43.     CALL GETOUT(22)
  44.   END
  45. testchar=RIGHT(bbspath,1)
  46. IF testchar~='/' & testchar~=':' THEN bbspath=bbspath'/'
  47.  
  48. CALL PRAGMA('P',-4)         /* lower the priority of this task */
  49.  
  50. extension=WORD(lynes.32,1)
  51. arccom=lynes.33
  52. compos=POS('/*',lynes.33)
  53. IF compos>0 THEN lynes.33=LEFT(lynes.33,compos-1)
  54. arccom=STRIP(lynes.33)
  55. IF LEFT(extension,1)~='.' THEN
  56.   DO
  57.     extension='.lzh'
  58.     arccom='lharc -m m'
  59.   END
  60.  
  61. filepath=bbspath'EmailFiles/'name
  62. CALL MAKEDIR(filepath)
  63. x=OPEN(f,bbspath'Numbers/LastMail','R')
  64. IF x~=0 THEN lastm=READLN(f)+1
  65. CALL CLOSE(f)
  66. ADDRESS COMMAND 'ECHO >'bbspath'Numbers/LastMail 'lastm
  67. browsename=filepath'/BBBBS_'lastm
  68.  
  69. filelistname=bbspath'Lists/Files'
  70. filelist.=''
  71. x=OPEN(f,filelistname,'R')
  72. IF x=0 THEN CALL GETOUT(23)
  73. DO i=1
  74.   line=READLN(f)
  75.   IF EOF(f) THEN LEAVE i
  76.   indx=WORD(line,1)
  77.   IF DATATYPE(indx,'N') THEN filelist.indx=line
  78. END
  79. filelist.0=indx
  80. CALL CLOSE(f)
  81. numba=filelist.0
  82.  
  83. IF alphaflag='A' THEN
  84.   DO
  85.     filelistname=filelistname'.ALPHA'
  86.     alphalist.=''
  87.     x=OPEN(f,filelistname,'R')
  88.     IF x=0 THEN CALL GETOUT(23)
  89.     DO i=1
  90.       line=READLN(f)
  91.       IF EOF(f) THEN LEAVE i
  92.       alphalist.i=line
  93.     END
  94.     alphalist.0=i-1
  95.     CALL CLOSE(f)
  96.     numba=alphalist.0
  97.   END
  98.  
  99. x=OPEN(a,browsename,'W')
  100. IF x=0 THEN CALL GETOUT(30)
  101. IF alphaflag='A' THEN temp='alphabetical'
  102. ELSE temp='aged'
  103. title='=' bbsname temp 'file descriptions'
  104. IF libflag='L' THEN title=title 'by library'
  105. CALL WRITELN(a,title)
  106. CALL WRITELN(a,'= Custom archived for' name'  'DATE() TIME('C'))
  107. CALL WRITELN(a,'')
  108.  
  109. IF libflag='A' THEN CALL noteloop(1)
  110. ELSE IF libflag='L' THEN
  111.   DO j=1 TO WORDS(liblist)
  112.     test1=WORD(liblist,j)
  113.     CALL noteloop(0)
  114.   END
  115. CALL CLOSE(a)
  116.  
  117. IF WORD(STATEF(browsename),2)<80 THEN CALL GETOUT(24)
  118. ADDRESS COMMAND arccom browsename||extension browsename
  119. IF ~EXISTS(browsename||extension) THEN CALL GETOUT(24)
  120. x=OPEN(f,bbspath'Email/'name'/BBBBS.'lastm,'W')
  121. IF x=0 THEN CALL GETOUT(25)
  122. CALL WRITELN(f,' Mail: 'lastm'   FILE: BBBBS_'lastm||extension)
  123. CALL WRITELN(f,' From: BBBBS')
  124. CALL WRITELN(f,'   To: 'name)
  125. CALL WRITELN(f,' Subj: BrowseList')
  126. CALL WRITELN(f,' Date: 'DATE('W') DATE() TIME('C'))
  127. CALL WRITELN(f,LEFT('=',75,'='))
  128. CALL WRITELN(f,'Here is the archived list of file descriptions you requested.')
  129. CALL CLOSE(f)
  130. IF GETCLIP('BBS_level')~='' & WORD(GETCLIP('BBS_lastcaller'),1)=name THEN
  131.   DO
  132.     oldmess=GETCLIP('BBS_MESSAGE')
  133.     IF oldmess~='' THEN oldmess=oldmess||'0D0A'x
  134.     CALL SETCLIP('BBS_MESSAGE',oldmess||'Your archived filelist is waiting in Email.')
  135.   END
  136. CALL GETOUT(0)
  137. EXIT
  138.  
  139.  
  140. noteloop:
  141. ARG nflag .
  142. IF alphaflag='A' THEN
  143.   DO i=1 TO numba
  144.     k=i
  145.     k=STRIP(WORD(alphalist.i,3))
  146.     IF filelist.k='' | lastbrowse>=k THEN ITERATE i
  147.     lname=WORD(filelist.k,2)
  148.     fname=WORD(filelist.k,3)
  149.     IF nflag THEN
  150.       DO
  151.         IF FIND(UPPER(liblist),UPPER(lname))=0 THEN ITERATE i
  152.       END
  153.     ELSE IF UPPER(test1)~=UPPER(lname) THEN ITERATE i
  154.     CALL add_note(bbspath'FileNotes/'lname'/'fname)
  155.   END
  156. ELSE
  157.   DO i=numba TO 1 BY -1
  158.     IF filelist.i='' | lastbrowse>=i THEN ITERATE i
  159.     lname=WORD(filelist.i,2)
  160.     fname=WORD(filelist.i,3)
  161.     IF nflag THEN
  162.       DO
  163.         IF FIND(UPPER(liblist),UPPER(lname))=0 THEN ITERATE i
  164.       END
  165.     ELSE IF UPPER(test1)~=UPPER(lname) THEN ITERATE i
  166.     CALL add_note(bbspath'FileNotes/'lname'/'fname)
  167.   END
  168. RETURN
  169.  
  170.  
  171. add_note:
  172. ARG addname
  173. CALL WRITELN(a,'=====')
  174. x=OPEN(b,addname,'R')
  175. IF x=0 THEN CALL WRITELN(a,addname 'failed to open for reading!')
  176. ELSE
  177.   DO
  178.     data=READCH(b,65000)
  179.     CALL CLOSE(b)
  180.     CALL WRITECH(a,data)
  181.   END
  182. CALL WRITELN(a,'')
  183. RETURN
  184.  
  185.  
  186. ERROR:
  187. SYNTAX:
  188.  
  189. GETOUT:
  190. ARG errorout
  191. CALL SETCLIP('BBS_BROWSE')
  192. EXIT(errorout)
  193.  
  194.  
  195. /* end of ArcBrowse.rexx */
  196.